Microprocessor systems have until recently been interconnected via multi-point drop data buses. The processors, memory controllers, input-output controllers (which may generally be termed “agents”) would be able to exchange data over a common data bus structure. However, as data transmission rates become higher, limitations in the multi-point drop data buses are becoming a problem. The electrical loadings and reflections in a multi-point drop data bus system may limit the data transmission speed. In order to address these and other issues, newer systems are examining individual, dedicated point-to-point data interfaces between the agents of a system.
There will still exist variances among agents attempting to exchange data via the point-to-point interfaces. Source impedances, path impedances, and termination impedances may all vary due to process variations and other influences. Data skew among the various parallel data lines, and between the clock and data lines, may become more of a problem at higher data rates. For this reason, during an initialization process the two agents at the opposite ends of the point-to-point interface may exchange special data messages to support the initialization process. For example, pre-determined data messages may help initialize a set of deskewing buffers in a parallel interface. It would be possible to simply send a large number of such messages and presume that the two agents would successfully receive and act upon a sufficient number of them. However this may prove to be a time-consuming process. If the process consumes too much time, it may impact system performance if the initialization is needed not just on a relatively-rare system reset event, but also on commonly occurring events such as transitions between normal operating modes and low-power operating modes.